package com.engine.salary.service;

import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.extemp.dto.ExtEmpDTO;
import com.engine.salary.entity.extemp.param.ExtEmpImportParam;
import com.engine.salary.entity.extemp.param.ExtEmpQueryParam;
import com.engine.salary.entity.extemp.param.ExtEmpSaveParam;
import com.engine.salary.entity.extemp.po.ExtEmpPO;
import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam;
import com.engine.salary.util.page.PageInfo;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.util.Collection;
import java.util.List;
import java.util.Map;

public interface ExtEmpService {

    List<ExtEmpPO> list(ExtEmpQueryParam param);

     PageInfo<ExtEmpDTO> listPage (ExtEmpQueryParam param);

    void save(ExtEmpSaveParam po);

    void update(ExtEmpSaveParam po);

    void delete(Collection<Long> ids);

    DataCollectionEmployee getEmployeeById(Long id);

    /**
     * 获取人员信息
     * @param ids
     * @return
     */
    List<DataCollectionEmployee> getEmployeeByIds(List<Long> ids);

    List<DataCollectionEmployee> listByParams(List<SalarySobRangeEmpQueryParam> includeQueryParams);

    /**
     * 查询人员列表
     *
     * @return
     */
    List<DataCollectionEmployee> listEmployee();

    Collection<DataCollectionEmployee> getEmployeeByIdsAll(List<Long> ids);

    Collection<DataCollectionEmployee> listAllForReport();

    ExtEmpPO getById(Long id);

    XSSFWorkbook exportImportTemplate();

    Map<String, Object> previewImportExtEmp(ExtEmpImportParam param);

    Map<String, Object> importExtEmp(ExtEmpImportParam param);

    List<DataCollectionEmployee> listBySubCompanyOrDepartment(List<Long> subCompanyIds, List<Long> departmentIds);
}